/**
 * 上传打包后的文件到服务器上的webpack插件
 */
const autoDeploy = require('./server').AutoDeploy;

class DevAutoDeployWebPackPlugin {
  constructor(options) {
    this.options = options;
  }

  apply(compiler) {
    // 定义在打包后执行这个webpack插件
    // 需要用到对应的钩子函数
    compiler.hooks.done.tap('DevAutoDeployWebPackPlugin', async (status) => {
      this.deploy();
    });
  }

  deploy() {
    console.log('部署服务器信息：', this.options.server);
    console.log('\n服务器授权成功，开始自动化部署~~\n');
    autoDeploy(
      this.options.server,
      this.options.dirName,
      this.options.remotePath,
    );
  }
}

module.exports = DevAutoDeployWebPackPlugin;
